package com.inforich.projectManage.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.inforich.common.mybatis.Location;
import com.inforich.common.mybatis.LocationHandler;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.inforich.common.core.domain.BaseParamEntity;
import com.inforich.common.annotation.Excel;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.inforich.common.core.domain.BaseEntity;

/**
 * 固废排放计划申报对象 br_project_rubbish_report
 *
 * @author hjm
 * @date 2022-10-29
 */
@Data
@EqualsAndHashCode()
@Accessors(chain = true)
@TableName("br_project_rubbish_report")
public class ProjectRubbishReport extends BaseParamEntity {

  private static final long serialVersionUID = 1L;

  /**
   * 主键
   */
  @TableId(type = IdType.ASSIGN_UUID)
  private String id;

  /**
   * 项目ID
   */
  @NotBlank(message = "缺少项目信息")
  private String projectId;
  @Excel(name = "项目名称")
  @TableField(exist = false)
  private String projectName;
  @Excel(name = "项目类型", dictType = "project_kind_id")
  @TableField(exist = false)
  private Long projectKindId;
  @Excel(name = "项目地址")
  @TableField(exist = false)
  private String projectAddress;
  @TableField(exist = false, typeHandler = LocationHandler.class)
  private Location projectLocation;
  /**
   * 状态( 10:未申请;20:待审核;30:已通过;40:未通过 )
   */
  @Excel(name = "状态", dictType = "approval_status")
  private Integer approvalStatus;
  /**
   * 建筑垃圾种类
   */
  @Excel(name = "建筑垃圾种类", dictType = "rubbish_type")
  private Integer rubbishType;
  /**
   * 处置面积
   */
  @Excel(name = "处置面积(m²)")
  private BigDecimal disposalArea;
  /**
   * 处置重量
   */
  @Excel(name = "处置重量(吨)")
  private BigDecimal disposalWeight;

  /**
   * 垃圾预估量
   */
  @Excel(name = "垃圾预估量(吨)")
  private BigDecimal disposalPlanWeight;
  /**
   * 预约时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  @Excel(name = "预约时间", width = 30, dateFormat = "yyyy-MM-dd")
  private Date bookingDate;
  /**
   * 车辆类别
   */
  @Excel(name = "车辆类别", dictType = "car_type_id")
  private Integer carType;

  /**
   * 预计车次
   */
  @Excel(name = "预计车次")
  private Long carNumber;

  /**
   * 资源化利用企业
   */
  private Long disposalLandId;
  @Excel(name = "资源化利用企业")
  @TableField(exist = false)
  private String disposalLandName;

  /**
   * 资源化利用企业联系人
   */
  @Excel(name = "资源化利用企业联系人")
  private String disposalLandPerson;

  /**
   * 资源化利用企业联系电话
   */
  @Excel(name = "资源化利用企业联系电话")
  private String disposalLandPhone;

  /**
   * 资源化企业意见
   */
  @Excel(name = "资源化企业意见")
  private String disposalSuggestion;

  /**
   * 施工单位
   */
  @Excel(name = "施工单位")
  private String constructionDept;

  /**
   * 施工单位联系人
   */
  @Excel(name = "施工单位项目经理")
  private String constructionPerson;

  /**
   * 施工单位联系电话
   */
  @Excel(name = "施工单位联系电话")
  private String constructionPhone;

  /**
   * 施工单位意见
   */
  @Excel(name = "施工单位意见")
  private String constructionSuggestion;

  /**
   * 监理单位
   */
  @Excel(name = "监理单位")
  private String supervisorDept;

  /**
   * 监理单位联系人
   */
  @Excel(name = "监理单位项目经理")
  private String supervisorPerson;

  /**
   * 监理单位联系电话
   */
  @Excel(name = "监理单位联系电话")
  private String supervisorPhone;

  /**
   * 监理单位意见
   */
  @Excel(name = "监理单位意见")
  private String supervisorSuggestion;

  /**
   * 运输单位
   */
  private String transportCompanyId;
  @Excel(name = "运输单位")
  @TableField(exist = false)
  private String transportCompanyName;

  /**
   * 运输单位联系人
   */
//  @Excel(name = "运输单位联系人")
  private String transportCompanyPerson;

  /**
   * 运输单位联系电话
   */
//  @Excel(name = "运输单位联系电话")
  private String transportCompanyPhone;

  /**
   * 运输单位意见
   */
  @Excel(name = "运输单位意见")
  private String transportCompanySuggestion;

  /**
   * 图片
   */
  private String projectImages;

  /**
   * 审批意见
   */
  @Excel(name = "审批意见")
  private String approvalDesc;

  /**
   * 审批时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
  private Date approvalDate;

  /**
   * 创建时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
  @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
  private Date createdDate;

  /**
   * 修改时间
   */
  @JsonFormat(pattern = "yyyy-MM-dd")
  private Date modifiedDate;

}